import request from '@/config/axios'

// ERP 客户 VO
export interface CustomerVO {
  id: number // 客户编号
  name: string // 客户名称
  contact: string // 联系人
  mobile: string // 手机号码
  telephone: string // 联系电话
  email: string // 电子邮箱
  fax: string // 传真
  remark: string // 备注
  status: number // 开启状态
  sort: number // 排序
  taxNo: string // 纳税人识别号
  taxPercent: number // 税率
  bankName: string // 开户行
  bankAccount: string // 开户账号
  bankAddress: string // 开户地址
  receivingStatus: number // 领用状态（0=未领用，1=已领用）
  enterprisePhone: string // 企业联系电话
  websitePhone: string // 网站对外展示电话
  clueTags: string // 客户线索标签（多个标签用逗号分隔）
  customerIndustry: string // 客户所属行业
  province: string // 所在省份
  city: string // 所在城市
  receiverId: number // 领用该客户的员工ID
  assignerId: number // 分配客户的员工ID
  assignmentDate: Date // 客户分配时间
  registeredCapital: number // 注册资金（单位：元）
  customerCategory: string // 客户分类（如：潜在客户、合作客户）
  customerSource: string // 客户来源渠道（如：线上广告、线下活动）
  abandonmentReason: string // 放弃客户的原因
  abandonerId: number // 放弃客户的员工ID
  customerStatus: number // 客户状态（1=活跃，2=沉睡，3=流失）
  abandonmentDate: Date // 放弃客户时间
  companyAddress: string // 公司注册地址
  legalRepresentative: string // 公司法定代表人
  employeeCount: number // 公司员工规模
  officialWebsite: string // 公司官方网站URL
  contactName: string // 联系人姓名（补充原contact字段细化）
  gender: string // 性别（男/女，建议用M/F枚举值）
  department: string // 联系人所属部门
  position: string // 联系人职务
  nativePlace: string // 联系人籍贯
  remarks: string // 其他补充说明（支持长文本）
  followUpCount: number // 客户跟进记录次数
  customerProfile: string // 客户基本情况简介
  cooperationStatus: string // 当前合作状态及历史记录
  bankAccountName: string // 银行开户名称（需与账户名一致）
  negotiationProgress: string // 合作洽谈阶段（如：需求沟通、合同签署）
  clueCategory: string // 线索来源类别（如：咨询类、意向类）
  parentCustomerId: number // 所属二级客户ID（关联主客户）
  customerLevel: string // 客户等级（如：A级、B级、C级）
  region: string // 所属地理区域（如：华北、华东）
}

// ERP 客户 API
export const CustomerApi = {
  // 查询ERP 客户分页
  getCustomerPage: async (params: any) => {
    return await request.get({ url: `/erp/customer/page`, params })
  },

  // 查询ERP 客户详情
  getCustomer: async (id: number) => {
    return await request.get({ url: `/erp/customer/get?id=` + id })
  },

  // 新增ERP 客户
  createCustomer: async (data: CustomerVO) => {
    return await request.post({ url: `/erp/customer/create`, data })
  },

  // 修改ERP 客户
  updateCustomer: async (data: CustomerVO) => {
    return await request.put({ url: `/erp/customer/update`, data })
  },

  // 删除ERP 客户
  deleteCustomer: async (id: number) => {
    return await request.delete({ url: `/erp/customer/delete?id=` + id })
  },

  // 导出ERP 客户 Excel
  exportCustomer: async (params) => {
    return await request.download({ url: `/erp/customer/export-excel`, params })
  }
}
